/// [external1], [external1.MyClass]
/// [shared], [shared.MyClass]
/// [age], [sing()], [Person], [Person.name], [Person.call()], [PersonList]
/// [docLinks], [docLinks.age], [docLinks.sing()],
/// [docLinks.Person], [docLinks.Person.name], [docLinks.PersonList],
/// [custom *link* text][docLinks.sing()]
/// [module], [module.age], [module.sing()],
/// [module.Person], [module.Person.name], [module.PersonList],
/// [custom *link* text][module.sing()]
module com.package1.docLinks

import "../com.externalpackage/external1.pkl"
import "shared.pkl"
import "docLinks.pkl"

/// [external1], [external1.MyClass]
/// [shared], [shared.MyClass]
/// [age], [sing()], [Person], [Person.name], [Person.call()], [PersonList]
/// [docLinks], [docLinks.age], [docLinks.sing()],
/// [docLinks.Person], [docLinks.Person.name], [docLinks.PersonList],
/// [custom *link* text][docLinks.sing()]
/// [module], [module.age], [module.sing()],
/// [module.Person], [module.Person.name], [module.PersonList],
/// [custom *link* text][module.sing()]
age: Int

/// [external1], [external1.MyClass]
/// [shared], [shared.MyClass]
/// [age], [sing()], [Person], [Person.name], [Person.call()], [PersonList]
/// [docLinks], [docLinks.age], [docLinks.sing()],
/// [docLinks.Person], [docLinks.Person.name], [docLinks.PersonList],
/// [custom *link* text][docLinks.sing()]
/// [module], [module.age], [module.sing()],
/// [module.Person], [module.Person.name], [module.PersonList],
/// [custom *link* text][module.sing()]
/// [song]
function sing(song: String) = "tra-la-la"

/// [external1], [external1.MyClass]
/// [shared], [shared.MyClass]
/// [age], [sing()], [Person], [Person.name], [Person.call()], [Person.call()], [PersonList]
/// [docLinks], [docLinks.age], [docLinks.sing()],
/// [docLinks.Person], [docLinks.Person.name], [docLinks.PersonList],
/// [custom *link* text][docLinks.sing()]
/// [module], [module.age], [module.sing()],
/// [module.Person], [module.Person.name], [module.PersonList],
/// [custom *link* text][module.sing()]
/// [name], [call()]
class Person {
  /// [external1], [external1.MyClass]
  /// [age], [sing()], [Person], [Person.name], [Person.call()], [PersonList]
  /// [docLinks], [docLinks.age], [docLinks.sing()],
  /// [docLinks.Person], [docLinks.Person.name], [docLinks.PersonList],
  /// [custom *link* text][docLinks.sing()]
  /// [module], [module.age], [module.sing()],
  /// [module.Person], [module.Person.name], [module.PersonList],
  /// [custom *link* text][module.sing()]
  /// [name], [call()]
  name: String

  /// [external1], [external1.MyClass]
  /// [shared], [shared.MyClass]
  /// [age], [sing()], [Person], [Person.name], [Person.call()], [PersonList]
  /// [docLinks], [docLinks.age], [docLinks.sing()],
  /// [docLinks.Person], [docLinks.Person.name], [docLinks.PersonList],
  /// [custom *link* text][docLinks.sing()]
  /// [module], [module.age], [module.sing()],
  /// [module.Person], [module.Person.name], [module.PersonList],
  /// [custom *link* text][module.sing()]
  /// [name], [call()]
  /// [number]
  function call(number: String) = "calling $number"
}

/// [external1], [external1.MyClass]
/// [shared], [shared.MyClass]
/// [age], [sing()], [Person], [Person.name], [Person.call()], [PersonList]
/// [docLinks], [docLinks.age], [docLinks.sing()],
/// [docLinks.Person], [docLinks.Person.name], [docLinks.PersonList],
/// [custom *link* text][docLinks.sing()]
/// [module], [module.age], [module.sing()],
/// [module.Person], [module.Person.name], [module.PersonList],
/// [custom *link* text][module.sing()]
typealias PersonList = List<Person>
